C等级考试题目~~``

来源:百度知道 编辑:UC知道 时间:2024/06/30 15:02:59
程序改错题:
gc228.c 代码功能为:使用指针将数组a中10个整数按相反的顺序存放。程序中有3处错误代码,请指出并改正之.
void inv(x,n)
int *x,n;
{int *p,t,*i,*j,m=(n-1)/2;
i=x;
j=n;
p=x+m;
for(;i<=p;i++,j--)
{t=*i;*i=*j;*j=t;}
return;
}
main()
{int a[10],i;
printf("input 10 number");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
inv(a,n);
printf("The array has been inverted:\n");
for(i=0;i<10;i--)
printf("%d,",a[i]);
printf("\n");
}


#include "stdio.h"
void inv(int *x,int n)
{int *p,t,*i,*j,m=(n-1)/2;
i=x;
j=x+n-1; //j是int * n 是int
p=x+m;
for(;i<=p;i++,j--)
{t=*i;*i=*j;*j=t;}
return;
}
void main()
{int a[10],i,n;
n=10; //2 n未定义
printf("input 10 number");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("The original array:\n");
for(i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");

inv(a,n);
printf("The array has been inverted:\n");
for(i=0;i<10;i++) //3 --改++
printf("%d,",a[i]);
printf("\n");
}
调试正确